package ysq.xyg.recovery.service;

import ysq.xyg.base.model.dto.ReturnEntity;
import ysq.xyg.base.service.BaseService;
import ysq.xyg.recovery.model.po.RecoverySackMember;
import ysq.xyg.sys.model.po.SysUser;
import ysq.xyg.recovery.model.vo.RecoverySackMemberVo;

import java.util.List;

/**
 * 回收金模块-袋子绑定用户service接口
 *
 * @author congcong
 * @date 2019-7-8 14:46:16
 */
public interface RecoverySackMemberService extends BaseService<RecoverySackMember> {

    /**
     * 分页查询
     *
     * @param recoverySackMemberVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnEntity 对象
     * @author congcong
     * @date 2019-7-8 14:46:16
     */
    ReturnEntity page(RecoverySackMemberVo recoverySackMemberVo, int pageSize, int pageNum);

    /**
     * 分页查询,关联袋子及预约表
     * @param recoverySackMemberVo
     * @param pageSize
     * @param pageNum
     * @author congcong tao
     * @date 2019/7/9 7:36
     */
    ReturnEntity pageLeft(RecoverySackMemberVo recoverySackMemberVo, int pageSize, int pageNum);

    /**
     * 修改
     *
     * @param recoverySackMemberVo 对象
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author congcong
     * @date 2019-7-8 14:46:16
     */
    ReturnEntity addOrUpdate(RecoverySackMemberVo recoverySackMemberVo, SysUser currentUser);

    /**
     * 删除
     *
     * @param id 主键id删除
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author congcong
     * @date 2019-7-8 14:46:16
     */
    ReturnEntity delete(String id, SysUser currentUser);

    /**
     * 获取集合
     *
     * @param recoverySackMemberVo 对象
     * @return List<RecoverySackMember> RecoverySackMember集合
     * @author congcong
     * @date 2019-7-8 14:46:16
     */
    List<RecoverySackMember> acceptList(RecoverySackMemberVo recoverySackMemberVo);

    /**
     * 用户预约
     * @param id
     * @author congcong tao
     * @date 2019/7/9 10:04
     */
    ReturnEntity coverSack(String id, String memberPhone, String memberAddress);

    /**
     * 用户绑定袋子
     * @param memberId
     * @param cardNo
     * @author congcong tao
     * @date 2019/7/10 8:10
     */
    ReturnEntity bindSack(String memberId, String cardNo);
}
